package com.work3;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

public class Test {
    public static void main(String[] args) {
        //此题考察的是hashset的元素不能重复，如果存的是自定义对象类型，判断两个对象是不是重复，需要重写对象的hashCode和
        //equals方法一起判断 原因是hashCode可能会出现hash冲突的问题，再加上equal方法判断具体的内容是否一样，如果两者都一样就认为是重复的元素

        //如图所示:当我们在京东注册新用户的时候,我们输入一个要注册的用户名,如果之前有该用户名注册过,
        // 京东是不会让相同的用户名注册的,会注册失败.根据以上描述,设计程序,完成注册功能!
        Set<User> users = new HashSet<>();
        //模拟数据库存一些系统已经有的用户数据
        users.add(new User("张三","123"));
        users.add(new User("李四","113"));
        users.add(new User("王五","132"));
        users.add(new User("赵六","131"));

        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请输入您的用户名");
            String username = scanner.next();
            System.out.println("请输入您的密码");
            String password = scanner.next();
            //封装一个当前输入的用户对象
            User user = new User(username,password);
            if(users.contains(user)) {
                System.out.println("您输入的用户已经被系统其他人注册过，请您换个号注册");
            } else {
                users.add(user);
                System.out.println("注册成功" + user);
                break;
            }
        }
        System.out.println("users = " + users);
    }
}
